Hello World in Henk
Для рекурсивних монадичних скінченних програм використовується терм Morte/recursive, а для корекурсивних комонадичних нескінченних программ використовується терм Morte/corecursive. Все це відбувається в чистій лямбді, а саме Calculus of Constructions, елементарній мові з залежними типами та мінімальній ситемі доведення теорем, яку ше називаються одноаксіоматичною системою типів, так як вона містить лише один тип Пі.
Нагадуємо собі, що таке IO и [>>=] (в Хаскель еквіваленті), які постачаються з базовою біблиотекою Henk:
Сама вільна монада IO на Хаскель псевдокоді буде виглядати так:
Компіляція (екстракт сертифікованої програми) в Erlang:
Для запуску цієї монади нам потрібні індуктивні біндінги, тобто зовнішні ефекти у вигляді функцій, які ми передаємо як параметри в скомпільований терм Morte/recursive:
Запускаємо:
Ви щойно побачили найчистіший з аплікативних біндінгів в функціональних тотальних мовах програмування.